import sensor, image, time,display
from pyb import UART

# 初始化摄像头
sensor.reset()
sensor.set_pixformat(sensor.RGB565)
sensor.set_framesize(sensor.QQVGA2)
sensor.skip_frames(time = 2000)
sensor.set_auto_gain(False)  # 关闭自动增益
sensor.set_auto_whitebal(False)  # 关闭自动白平衡
lcd = display.SPIDisplay()
# 初始化串口
uart = UART(3, 115200)

# 定义纸团颜色阈值，这里以接近白色为例，可根据实际调整
paper_threshold = (90, 100, -10, 10, -10, 10)

clock = time.clock()

while True:
    clock.tick()
    img = sensor.snapshot()

    # 寻找纸团色块
    blobs = img.find_blobs([paper_threshold])

    if blobs:
        # 找到最大的纸团色块
        largest_blob = max(blobs, key=lambda b: b.pixels())

        # 获取纸团的中心坐标
        x = largest_blob.cx()
        y = largest_blob.cy()

        # 获取纸团的边界框信息
        x1, y1, w, h = largest_blob.rect()

        # 在图像上绘制方框圈出纸团
        img.draw_rectangle(x1, y1, w, h)
        lcd.write(sensor.snapshot())  # 拍照并显示图像。
        # 发送坐标数据到串口
        data = "{},{}".format(x, y)
        uart.write(data + '\n')
    else:
        # 如果没有找到纸团，发送无效坐标
        uart.write("-1,-1\n")

    print(clock.fps())
